Current communication systems are extremely large networks of interconnected Communication Units (CUs) approaching complexities and scale of unmanageable magnitude. These systems are comprised of a hybrid mix composed of wire line and wireless transport networks which are fixed (stationary), movable (reconfigurable fixed), portable (slow mobility) and mobile (fast mobility). The architecture of various types of CUs forming the system network is constantly changing and evolving adding to the complexity.
Packet based architectures for the efficient routing, forwarding, and switching of data flows are non-existent which also exhibit flexibility and scalability over a multiplicity of network protocols, granularity, applications and hardware. With the current evolution of the Internet as a global communication infrastructure, the inherit design imposes challenging constraints in supporting emerging services in the wire line and wireless networks.
The primary network infrastructure including the Internet was constructed around a very simple point to point communication model. Network intelligence was assigned to the network routing nodes, while the end point devices were assumed independent from the transport decision tasks. The network nodes would perform all transport forwarding tasks and decisions. This simple two-tier model has allowed these infrastructures to evolve without efficiency or scalability issues to current magnitudes with little issues.
Research from social networking has resulted in the concepts of “small worlds” theory where contact relationships and acquaintance metrics reduce the degrees of separation between entities. This can drastically reduce the path length of large complex networks to a very manageable practical size.
A subset of a relationship graph is shown in FIG. 1. Nodes represent entities with their associated relational contacts. The number of degrees of separation is the number of hops between two entities. Node 50 has relational associations or contacts with nodes 54, 58, 62, 66 and 70 shown by links 52, 56, 60, 64 and 68, respectively. There are other links associated via links 72 and 74. If the node of interest is node 94, a relationship path discovered through contact links would be node 66 via link 64, node 78 via link 76, node 82 via link 80, node 86 via link 84, node 90 via 88 and the node of interest 94 via link 94. This illustrates six degrees of separation between node 50 and node 94.
Emerging communication networks have been exploiting results from small world concepts to attempt to reduce large complex networks to a reasonable small world network. Several new architectures have been introduced in the research community that attempt to create a small world in large-scale networks. These architectures are based on defining relational contacts for network nodes. The contacts form short cuts in the communications path, which represent logical connections that translate into multiple physical hops.
A particular node will have its own set of contact information, which may encompass many different sets of other nodes, depending on the particular relational attribute being exploited. But for a given set of contacts there will be a set of first contacts or single hop links or nodes of one degree of separation. This represents the initial known contacts and forms a one degree contact domain. In FIG. 2 a portion of a contact or relationship graph is shown. For a node of interest, 100, the first contacts, 104, 108, 112, 116, 120, 124, 128, 132 and 136 are shown with their associated relational links to contacts, 102, 106, 110, 114, 118, 122, 126, 130 and 134, respectively. This resulting one degree contact domain is shown as 156.
This virtual contact domain concept may be extended to encompass nodes of multiple degrees of freedom. In FIG. 2 a first contact node, 136 is chosen for illustration purposes. Node 136 has a one degree contact domain, 158, comprised of nodes 132, 140, 144, 148, 104, 108 and 100 with associated links, 154, 138, 142, 146, 150, 152 and 134, respectively. If this is extended for all nodes in the one degree contact domain for node 100, the resulting two degree contact domain, 160 is formed. This will result in increased efficiency in finding a node within a domain.
As the number of degrees of freedom or as virtual reach of the contact domain increases, the probability of finding the destination node increases, because the contact domains will overlap. In FIG. 3 several nodes, 170, 174, 180 and 186 and their associated two degree contact domains, 172, 176, 182 and 188, respectively are shown. Domain 172 overlaps domain 176 resulting in an overlap 178, domain 176 overlaps domain 182 resulting in an overlap 184 and domain 188 is outside domains 172, 176 and 182. Source node 170 would be capable of finding any destination in contact domain 176 via contacts in 178 and for destinations in contact domain 182, contacts via 178, 176 and 184 would be utilized. For destinations in contact domain 188, no destinations could be found utilizing contact information.
Extending the number of degrees of separation is accomplished at a penalty of increased resources for maintaining contact information within a domain. If the extent is insufficient, the probability of reaching the destination is very low utilizing contact information only unless some means is incorporated for maintaining contact outside of the domain.
With the introduction of wireless nodes into the network, spatial dependencies due to radio transceiver efficiencies become a necessary consideration. Mobility will add time dependencies as an additional mandatory parametric factor. Both location and time are relational attributes, but maintain required parametric presence if wireless mobility is incorporated into the communication infrastructure. This adds significant complexity to conventional discovery methodologies, but becomes a natural extension of the small world concept as only an added relational attribute.
A portion of a relational graph is shown in FIG. 4. For illustrative simplicity, only node 194 will be mobile. The source node 190 with its associated two degree contact domain 192 and the mobile node 194 with its associated two degree contact domain 196 are shown in their initial state. The domains overlap 198 and destination discovery is guaranteed. The node 194 is moving away from node 190. In FIG. 5, at a later time, node 194 has moved along the path 200 and is shown as node 202 in its new position within the relational graph. Node 202 has a new two degree contact domain 204 associated with its new position. The new domain still overlaps 192 and is shown as 206. This will still insure destination discovery of node 202 (old node 194). With further movement of node 202 along path 208, its new position is shown as node 210 in FIG. 6. The new two degree contact domain 212 no longer overlaps 192. If only the nodes within the domain 192 are queried for contact information, discovery of node 210 would be lost. Research has indicated that maintaining a small number of carefully chosen nodes outside the contact domain will significantly increase the coverage. In FIG. 7, a node 214 is chosen as an extension contact node outside of domain 192. This effectively adds the contact domain 216 from node 214 to domain 192. This new coverage now overlaps domain 212 resulting in a discovery of node 210.
These contacts are chosen by various algorithms and/or by taking advantage of mobility or underline routing protocols. The goal of such contacts is to be used during network routing and resource discovery without global flooding. These “smart” contacts, computed by current or future algorithms, out-perform traditional packet routing protocols in simulation studies but have little commercial value without a practical, efficient and robust mechanism to implement these relationship in “real-live” wire line and wireless packet communication networks.
Multi-protocol label switching (MPLS) and generalized multi-protocol label switching (GMPLS) are current technology solutions for addressing performance, management and scalability issues in today's networks. MPLS/GMPLS separate routing from packet forwarding/switching with the use of a simpler paradigm based on label swapping. The separation from routing allows for interfacing to existing layer 2 and layer 3 protocols. The communication path is determined from labels embedded in the packet header. The label determines the Label-Switched Path (LSP) for a packet with local significance only (i.e. next hop).
An illustrative diagram of a MPLS domain is shown in FIG. 8. The network is comprised of an ingress host 220 with multiple data flows to two egress hosts, 222 and 224, interconnected via multiple Label Switching Routers (LSR). Two LSPs, 270 and 272 are shown, one for each data flow. LSR 228 is the ingress point for the host 220. The LSRs located at the edge of a MPLS domain are also classified as a Label Edge Router (LER) due to possible added support for dissimilar networks. Data flows are assigned to a particular Forwarding Equivalency Class (FEC) determined by a set of transport requirements such as service properties and destination address.
As a packet 226 enters the edge LER 228, a FEC is assigned as well as determining the LSP 270 to use. The LSP will determine which label should be added to the packet. LER 228 will forward the packet on the appropriate interface to the determined LSR 232. The labeled packet 230 is received by LSR 232. The incoming interface and label will be used to determine the outgoing interface and new label. The current label is swapped for the new label and forwarded on the appropriate interface to the next LSR 236 for the particular LSP 270. The new labeled packet is received by LSR 236 and processed in a similar manner and forwards a new labeled packet 238 to LSR 240. LSR 240 processes the packet 238 and forwards a new labeled packet 242 to the egress LER 244.
LER 244 perform similar tasks with the exception of stripping the label from labeled packet 242 before forwarding to the appropriate interface for external conventional processing to destination host 222.
Data flows assigned to LSP 272 are processed in a equivalent manner. Packets from host 220 destined for host 224 are processed be LER 228 with a label added for appropriate processing by LSR 232. The labeled packet 250 is processed by 232 and forwarded to LSR 254 as labeled packet 252. LSR 254 processes the packet 252 and forwards the labeled packet 256 to LSR 258. LSR 258 processes packet 256 and forwards the labeled packet 260 to LSR 262. LSR 262 will process packet 260 and forward the labeled packet 264 to LER 266, where the label is stripped and forwarded to the appropriate interface for external processing to destination host 224.
MPLS cannot work without the distribution of the mappings of the incoming interface and label to the outgoing interface and label. Without populating the LSRs throughout the domain, LSPs could not be used, MPLS does not specify a single protocol for distribution of labels or mappings, but allows for multiple solutions. The hop-by-hop LDP (Label Distribution Protocol) for creating LSPs allows high-level relationship attributes being mapped to “real” network services by negotiating and setup on a hop-by-hop basis.
In MPLS label distribution is from the downstream direction. The mappings are towards the source and opposite the direction of data flow. With GMPLS upstream label suggestion is permitted.
With downstream distribution, two possible methodologies are supported, downstream label distribution and downstream-on-demand label distribution. With downstream label distribution, a downstream LSR will assign a label and send its mapping unsolicited to its upstream neighbor for a particular FEC. In FIG. 9 during the creation of a LSP 308 from ingress host 220 to egress host 306, with downstream label distribution LSR 276 would send a mapping 278 to LER 274 upon assignment of the label mapping the interface to the next hop LSR 282 in the LSP 308. Subsequently, LSR 282 would send a mapping 284 for the next hop LSR 288 to LSR 276. This will continue with LSR 288 sending mapping 290 to LSR 282, LSR 294 sending mapping 296 to LSR 288. Finally LER 300 would finish the LSP 308 sending the mapping 302 to LSR 294.
With downstream-on-demand label distribution, the LSR would request a label mapping from the downstream LSR. Following the same LSP 306 in FIG. 9. LER 274 recognizes LSR 276 as the next hop for the FEC and send a request for mapping 280 from LSR 276, which would send back a mapping 278. LSR 276 would send a request 286 to 282 which would send a mapping 284 back. LSR 282 would send a request 292 to 288 which would send a mapping 290 back. LSR 288 would send a request 298 to 294 which would send a mapping 296 back. LSR 294 would send a request 304 to 300 which would send a mapping 302 back terminating the LSP.
However, MPLS is designed for IP flows aggregation from ingress points to egress points. MPLS also assumes that “network reach-ability issues” have been resolved by incorporated routing protocols.
The two-tier model from which current network architectures have been based was envisioned with unicast service provisioning in mind, where the destination was known and fixed. With the evolution of communication systems to include wireless and wire line infrastructures, fixed and mobile nodes, services are becoming more complex. In addition to the basic unicast services, more complex services are emerging such as multicast where there can be multiple source and destination participants, anycast where there is only a single receiver for a particular packet, multihoming where there is more than a single service destination (i.e. multiple service providers), dynamic where the topology will not be constant and mobility where the destination location is not fixed. These new services have failed deployment in the existing infrastructure.
In order to alleviate these shortcomings, several attempts have been made to decouple the source from the destination by introducing a indirection point between the source (sender) and destination (receiver). Most proposed solutions have failed due to scalability issues. An overlay network based solution was proposed, Internet Indirection Infrastructure (I3), using rendezvous based communications.
A rendezvous based network assumes an indirection point, a logical abstraction where a identifier is associated with a rendezvous point between sender and receiver. There are two primitives, send(p) in which a sender would send a packet (id, data) into the network and insert(t) in which a receiver would insert a trigger (id, address) into the network. This id represents the logical abstraction of the rendezvous point. In the I3 network, the overlay network is comprised of I3 servers which act as the rendezvous points. The servers store triggers as well as forward packets.
A rendezvous based I3 network is shown in FIG. 10 comprised of a receiver 310 attached to the network at 312, a sender 318 attached to the network at 320 and an I3 server 316 attached to the network at 314. The receiver 310 would send a trigger 322 to the I3 server 316 with an ID identifying a service packet and the destination address associated with 310 to forward the packet. The sender 318 would send a data packet 324 to the I3 server 316 containing an ID identifying the abstract destination, ID to whom the data packet should be forwarded. The I3 server 316 matches the ID from the data packet 324 with the ID from the trigger 322 and forwards the data packet 326 to the destination address associated with 310 identified in the trigger 322. This is equivalent functionally to a unicast service, but with the sender and receiver decoupled.
For a multicast service, a rendezvous based I3 network is shown in FIG. 11 comprised of multiple receivers, 310 attached to the network at 312, 328 attached to the network at 330 and 332 attached to the network at 334, which are participating as a multicast group. There is also a sender 318 attached to the network at 320 and an I3 server 316 attached to the network at 314. Each receiver in the multicast group 310, 328 and 332 would send a trigger to the I3 server 316. Receiver 310 would send a trigger 322 with an ID identifying a multicast session service packet and the destination address associated with 310 to forward the packet. Receiver 328 would send a trigger 336 with the same ID identifying the same multicast session service packet but the destination address associated with 328 to forward the packet. Receiver 332 would send a trigger 338 with the same ID identifying the same multicast session service packet but the destination address associated with 332 to forward the packet. The sender 318 would send a data packet 324 to the I3 server 316 containing an ID identifying the abstract destination, ID to whom the data packet should be forwarded, in this case the multicast group, but the mechanism is identical to the unicast example. The I3 server 316 matches the ID from the data packet 324 with the ID from the multicast group. The I3 server will forward the packet 326, 340 and 342 to the destination addresses associated with triggers, address for 310 identified in the trigger 322, address for 328 identified in the trigger 336 and address for 332 identified in the trigger 338.
For an anycast service, a rendezvous based I3 network is shown in FIG. 12 comprised of multiple receivers, 310 attached to the network at 312, 328 attached to the network at 330 and 332 attached to the network at 334, which are participating as an anycast group. There is also a sender 318 attached to the network at 320 and an I3 server 316 attached to the network at 314. Each receiver in the anycast group 310, 328 and 332 would send a trigger to the I3 server 316. Receiver 310 would send a trigger 322 with an ID identifying an anycast group session service packet with some of the least significant ID bits unique identifying 310 and the destination address associated with 310 to forward the packet. Receiver 328 would send a trigger 336 with an ID identifying an anycast group session service packet with some of the least significant ID bits unique identifying 328 and the destination address associated with 328 to forward the packet. Receiver 332 would send a trigger 338 with an ID identifying an anycast group session service packet with some of the least significant ID bits unique identifying 332 and the destination address associated with 332 to forward the packet. The ID for each member of the anycast group would have k significant bits identical and associated with the anycast group ID. The sender 318 would send a data packet 324 to the I3 server 316 containing an ID identifying the abstract destination, ID to whom the data packet should be forwarded, in this case the anycast group. The I3 server 316 matches the ID from the data packet 324 with the k significant bits ID from the anycast group. The I3 server will determine by some preset means the best suited receiver to forward the packet. In this case packet 326 would be forwarded to the destination address associated with 310 identified in the trigger 322. This selection could be determined by best prefix matching, QoS or CoS parametrics.
In a mobile application the receiver can change location within the network changing the destination address. A rendezvous based I3 network is shown in FIG. 13 comprised of a receiver 310a at initial location attached to the network at 312, a sender 318 attached to the network at 320 and an I3 server 316 attached to the network at 314. The receiver 310a would send a trigger 322 to the I3 server 316 with an ID identifying a service packet and the destination address associated with 310a to forward the packet. The sender 318 would send a data packet 324 to the I3 server 316 containing an ID identifying the abstract destination, ID to whom the data packet should be forwarded. The I3 server 316 matches the ID from the data packet 324 with the ID from the trigger 322 and forwards the data packet 326 to the destination address associated with 310a identified in the trigger 322. Receiver 310a will move to new location in the I3 network along a path 344. The receiver designated as 310b in its new location will be attached to the network at 346. The receiver 310b would send a trigger 348 to the I3 server 316 with the same ID identifying a service packet and the destination address associated with 310b to forward the packet. The I3 server 316 matches the ID from the data packet 324 with the ID from the trigger 348 and forwards the data packet 350 to the destination address associated with 310b identified in the trigger 348. The rendezvous based communications solution, Internet Indirection Infrastructure is solid in theory and simulations have been very positive. When implemented as an overlay network on top of IP, the solution is not applicable to the “real” Internet. The scheme consists of a set of servers that stores the ID and forwards packets between the sender and receiver. This exhibits very inefficient packet routing in the overlay network because the forwarding path is mixed with ID storage and lookup resulting in serious scalability issues.
Within MPLS networks, various LSPs could converge over portions of the network, sharing forwarding paths. These flows would share labels within this common area. This is known as label merging or flow aggregation. A MPLS domain is shown in FIG. 14 with multiple ingress hosts 360 and 364 with data flows to separate egress hosts 362 an 366 respectively. LSP 408 for the data flow from ingress host 360 to egress host 362 is defined by label mappings 384, 386, 388, 390 and 392. LSP 410 for the data flow from ingress host 364 to egress host 366 is defined by label mappings 398, 400, 402 and 404. LSP 408 and LSP 410 share a common path or merge from LSR 370 to LSR 372 and diverge at LSR 374. In order to maintain flow identity at the divergence point, a mechanism called label stacking was implemented. The level within a stack corresponds to the level within the flow hierarchy. In this example, the labels associated with the mappings 384, 386 and 392 are part of a level 0 stack for LSP 408. The labels associated with mappings 398 and 404 are part of the level 0 stack for LSP 410. In the merged region the labels associated with mappings 400 and 388 would be identical and the labels associated with mappings associated with mappings 402 and 390 would be identical. These two labels would represent level one in the stack for LSP 408 and LSP 410. This illustrates a simple case of a hierarchical LSP concept.
In GMPLS, flow aggregation is a key concept and defined as GMPLS Hierarchical LSP by the IETF. GMPLS extends MPLS beyond packet based switching to also support switching based in the time, wavelength and space domains present in current infrastructures. Within these networks a natural hierarchy exists between Packet Switch Capable (PSC), Time Domain Multiplexing Capable (TDM), Lambda Switch Capable and Fiber Switch Capable (FSC) devices with increasing bandwidth capabilities, respectively. A simplifying constraint exists within this hierarchy which requires that an LSP must begin and end at the same level due to natural equipment support. This massive aggregation of bandwidth requires extremely large amounts of LSPs to support it. The higher levels in the hierarchy require increasing amounts due to this aggregation. The concept of Hierarchical LSP allows the GMPLS network to dramatically reduce the number of LSPs that the higher levels would have to support.
This hierarchical structure is shown in FIG. 15 illustrating GMPLS flow aggregation. This natural hierarchy occurs between the PSC network 420 at level 0, the TDM network 422 at level 1, the LSC network 424 at level 2 and the FSC network 426 at level 3. Because of the termination equipment requirements, there is a natural symmetry to the network hierarchy.
Assuming a particular ingress 428 and egress 430, the hierarchy can be described. The ingress flow enters the PSC network 420 through an interface on one of the ingress PSC nodes 432. PSC 432 would traverse the PSC network until entering a boundary PSC node 434 through link 434. The boundary node 434 would interface to the TDM network 422 via a link 438. The link 438 interfaces with the ingress TDM node 444 where it will be aggregated with other PSC links 440 and 442. This aggregation would be repeated through other ingress TDM nodes from throughout the PSC network 420. This aggregated flow would traverse the TDM network 422 until entering a boundary TDM node 448 through link 446. The boundary node 448 would interface to the LSC network 424 via a link. The link 452 interfaces with the ingress LSC node 454 where it will be aggregated with ingress TDM link 452. This aggregation would be repeated through other ingress LSC nodes from throughout the TDM network 422. This aggregated flow would traverse the LSC network 424 until entering a boundary LSC node 458 through link 456. The boundary node 458 would enter the FSC network 426 via a link 460. The link 460 interfaces with the ingress FSC node 466 where it will be aggregated with other ingress TDM links 462 and 464. The aggregated flow is at the highest level, level 3, in the hierarchy. The flow would traverse the FSC network 426 until entering an egress FSC node 470 through link 468.
The flow would begin traversing down the hierarchy when the aggregated flows are split to the appropriate interfaces and exit the FSC network 426 through links 472 and 474. The flow of interest interfaces with the boundary LSC node 476. The flow would traverse the LSC network 424 until entering an egress LSC node 480 through link 478. The flow would be split to the appropriate interfaces and exit the LSC network 424 through links 482 and 484. The flow of interest interfaces with the boundary TDM node 486. The flow would traverse the TDM network 422 until entering an egress TDM node 490 through link 488. The flow would be split to the appropriate interfaces and exit the TDM network 422 through links 492, 494 and 496. The flow of interest interfaces with the boundary PSC node 498. The flow would traverse the PSC network 420 until entering an egress PSC node 502 through link 500. The flow would exit the network out an interface of egress PSC node 502.
The process of creating the Hierarchal LSP will be shown in FIG. 16 using the same example in FIG. 15 for a flow from ingress 428 to egress 430. When the flow enters the PSC network 420 at ingress node 434, a request 504 for a level 0 LSP 544 from ingress PSC node 434 to egress PSC node 502 would be generated. The request would arrive at the boundary PSC node 438 where a request to ingress TDM node 444 would be generated. With the arrival at the level 1 TDM network 422, a request 506 for a level 1 LSP 542 from ingress TDM node 444 to egress TDM node 490 would be generated. The request would arrive at the boundary TDM node 448 where a request to ingress LSC node 454 would be generated. With the arrival at the level 2 LSC network 424, a request 508 for a level 2 LSP 540 from ingress LSC node 454 to egress LSC node 480 would be generated. The request would arrive at the boundary LSC node 460 where a request to ingress FSC node 466 would be generated. With the arrival at the level 3 FSC network 426, a request 510 for a level 3 LSP 538 from ingress FSC node 466 to egress FSC node 470 would be generated.
Egress FSC node 470 would complete the creation of the level 3 LSP 538 and sends a response 522 back to the requesting ingress FSC node 466. With the completion of the level 3 LSP 538, the request 508 for the level 2 LSP 540 from ingress node 454 is tunneled 524 through the level 3 LSP 538 to boundary LSC node 476 and forwarded to egress LSC node 480. This completes the level 2 LSP 540 and egress LSC node 480 sends a response 526 back to the requesting ingress LSC node 454. With the completion of the level 2 LSP 540, the request 506 for the level 1 LSP 542 from ingress node 444 is tunneled 528 through the level 2 LSP 540 to boundary TDM node 486 and forwarded to egress TDM node 490. This completes the level 1 LSP 542 and egress TDM node 490 sends a response 530 back to the requesting ingress TDM node 444. With the completion of the level 1 LSP 542, the request 504 for the level 0 LSP 544 from ingress node 432 is tunneled 532 through the level 1 LSP 542 to boundary PSC node 498 and forwarded to egress PSC node 502. This completes the level 0 LSP 544 and egress PSC node 502 sends a response 534 back to the requesting ingress PSC node 432. This completes the Hierarchal LSP.
The conventional MPLS LSP is just a sequence of labels or a concatenation of labels. With a Hierarchal LSP (H-LSP), for levels greater than 0, the level n LSP is a sequence or concatenation of lower level LSPs. The level 0 LSP is equivalent to the conventional MPLS labels. A homogeneous H-LSP, LSP (4,1) is shown in FIG. 17 with a constant level depth of 4. The figure depicts a LSP as LSP(n,m) where n is the level number and m is a LSP sequence number within the LSP level n. Labels are indicated as L(n,l) where n is the level number and 1 is a label sequence number within the LSP level n. An X indicates a null to act as a label placeholder at the end of a label sequence of a particular LSP.
For instance, LSP (1,1) is a level 1 LSP and the first level 1 LSP comprised of labels L(0,1), L(0,2) and a null (X) indicating the end of LSP(1,1). For level n>1, the sequence is a concatenation of LSPs of level n−1. LSP(2,1) is a concatenation of LSP(1,1) and LSP(1,2) with label L(1,1) used for LSP(1,1) and a null(X) as a placeholder for LSP(1,2). Similarly for LSP(3,1) is a concatenation of LSP(2,1) and LSP(2,2) with L(2,1) used for LSP(2,1) and null(X) as a placeholder for LSP(2,2). Finally for the level 4 LSP, LSP(4,1) is a concatenation of LSP(3,1) and LSP(3,2) with label L(3,1) used for LSP(3,1) and a null (X) as a placeholder for LSP(3,2). The other LSPs are defined equivalently.
The table in FIG. 17 illustrates the associated label stack corresponding to the sequence from top (ingress) to bottom (egress). At the ingress, sequence 1, for LSP(4,1) which is a hierarchy of level 3, 2, 1 and 0 LSPs, labels L(3,1), L(2,1), L(1,1) and L(0,1) are pushed on the stack. At sequence 2, L(0,1) is swapped for L(0,2). At sequence 3, L(0,2) is swapped for a null (X) to indicate a placeholder for the end of LSP(1,1). At sequence 4, LSP(1,1) will be completed and the level 0 label, X will be popped from the stack. Sequence 4 also corresponds with the creation of LSP(1,2) and the final label for LSP(2,1). To accommodate these events a null(X) to indicate a placeholder for the end of LSP(2,1) and L(0,3) for the creation of LSP(1,2) will be pushed on the stack. At sequence 5, L(0,3) is swapped for L(0,4). At sequence 6, L(0,4) is swapped for a null(X) to indicate a placeholder for the end of LSP(1,2). At sequence 7, LSP(1,2) and LSP(2,1) will be completed and the level 0 label, X as well as the level 1 label, X will be popped from the stack. Sequence 7 also corresponds with the creation of LSP(1,3) and LSP(2,2) as well as the final label for LSP(3,1). To accommodate these events a null(X) to indicate a placeholder for the end of LSP(3,1), L(1,2) for the creation of LSP(2,2) and L(0,5) for the creation of LSP(1,3) will be pushed on the stack. The labels will be swapped, popped and pushed on the stack in a similar manner through the remaining sequence. At sequence 13, LSP(1,4), LSP (2,2) and LSP(3,1) will be completed and the level 0, 1 and 2 labels, X as will be popped from the stack. Sequence 13 also corresponds with the creation of LSP(1,5), LSP(2,3) and LSP(3,2) as well as the final label for LSP(4,1). To accommodate these events a null(X) to indicate a placeholder for the end of LSP(4,1), L(2,2) for the creation of LSP(3,2), L(1,3) for the creation of LSP(2,3) and L(0,9) for the creation of LSP(1,5) will be pushed on the stack. Finally at the egress, sequence 24, for LSP(4,1) all LSPs will be completed and all labels in the stack will be popped at the completion of the sequence.
A H-LSP is not limited to the homogeneous case, but can have variable depths with a the only constraint being for a level n H-LSP, the sequence of concatenated LSPs of depths less than n and greater than 1 must contain at least one LSP with depth n-l. An inhomogeneous level 4H-LSP, LSP(4,1) is shown in FIG. 18 with a variable level depth from 1 to 4. The figure depicts a LSP as LSP(n,m) where n is the level number and m is a LSP sequence number within the LSP level n. Labels are indicated as L(n,1) where n is the level number and 1 is a label sequence number within the LSP level n. An X indicates a null to act as a label placeholder at the end of a label sequence of a particular LSP. The H-LSP initially has a depth of 4 at sequence 1, a depth of 3 at sequence 7, a depth of 1 at sequence 13, a depth of 3 at sequence 16 and the completes at sequence 21. The sequence is a concatenation of a level 3 LSP, LSP(3,1), a level 1 LSP, LSP(1,5) and a level 2 LSP, LSP(2,2). LSP(3,1) is a concatenation of a level 2 LSP, LSP(2,1) and two level 1 LSPs, LSP(1,3) and LSP(1,4). LSP(2,1) is a concatenation of two level 1 LSPs, LSP(1,1) and LSP(1,2). Finally, LSP(2,2) is a concatenation of two LSPs, LSP(1,6) and LSP(1,7).
The table in FIG. 18 illustrates the associated label stack corresponding to the sequence from top (ingress) to bottom (egress). The stack behavior is similar to the homogeneous example in FIG. 17 with the exception of a variable stack depth corresponding to the variable depth of LSPs. For example, at sequence 7, LSP(1,2) and LSP(2,1) will be completed and the level 0 label, X as well as the level 1 label, X will be popped from the stack. Sequence 7 also corresponds with the creation of LSP(1,3). To accommodate these events L(1,2) will be swapped for L(2,1) to indicate the continuation of LSP(2,1) for LSP(3,1) and L(0,5) for the creation of LSP(1,3) will be pushed on the stack. At this point the stack has a depth of 3 instead of 4 corresponding with the reduction in level in the hierarchy. Similarly at sequence 13, LSP(1,4) and LSP(3,1) will be completed and the level 0 label, X as well as the level 1 label, X will be popped from the stack. Sequence 13 also corresponds with the creation of LSP(1,5) and L(0,5) will be pushed on the stack resulting in a stack depth of 1 as well as a level 1 hierarchy. At sequence 16 LSP(1,5) will be completed and the level 0 label, X will be popped from the stack. Sequence 16 also corresponds with the creation of LSP(1,6) and LSP(2,2). To accommodate these events L(1,4) for the creation of LSP(2,2) and L(0,11) for the creation of LSP(1,6) will be pushed on the stack. At this point the stack has a depth of 2 corresponding with the level in the hierarchy. Finally after sequenc231, for LSP(4,1) all LSPs will be completed and all labels in the stack will be popped at the completion of the sequence.
The use of label stacking in a Hierarchical LSP enables concatenation of lower level LSPs, but still requires the means for determining these sequences.